use std::env;
use agent::generic::ProviderConfig;
use learn::learn::html_processor::create_html_folder_processor2;
use dotenvy::dotenv;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 初始化环境变量和日志
    dotenv().ok();
    env_logger::init();

    // 设置输入和输出目录
    let input_dir = "./resources/csug";
    let output_dir = "./output/create_html_folder_processor2";

    // 获取 Gemini API 密钥
    let api_key = env::var("GEMINI_API_KEY").expect("GEMINI_API_KEY 环境变量未设置");

    // 创建 Gemini 提供商配置
    let provider_config = ProviderConfig::Gemini {
        api_key,
        base_url: None,
        temperature: 0.2,
        max_tokens: Some(1000),
    };

    // 创建 HTML 文件夹处理器2
    let processor = create_html_folder_processor2(
        provider_config.clone(),
        "gemini-2.5-pro-exp-03-25", // 使用 Gemini 模型
        provider_config,
        "gemini-2.5-pro-exp-03-25", // 使用 Gemini 模型
        1, // 并行处理数量
        output_dir.to_string(),
    );

    // 处理 HTML 文件夹
    let result = processor.run(input_dir.to_string(), common::compose::make_empty_ctx()).await?;
    println!("处理完成，共处理 {} 个文件", result);

    Ok(())
}
